/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package negocio;

import bancoDados.DAO;
import beans.ProdutoBean;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Felipe Tadeu
 */
public class ProdutoDAO extends DAO{
    
    public ArrayList<ProdutoBean> buscarTodos() {

        ArrayList<ProdutoBean> listaProdutos = new ArrayList<ProdutoBean>();

        try {

            String sql = "SELECT * FROM PRODUTOS ORDER BY DSC_PRODUTO";
            PreparedStatement stmt = conn.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery();

            while (rs.next()) {
                // Criando objetos     
                ProdutoBean produto = new ProdutoBean();
                produto.setCodProduto(rs.getInt("COD_PRODUTO"));
                produto.setCodSupermercado(rs.getInt("COD_SUPERMERCADO"));
                produto.setDscProduto(rs.getString("DSC_PRODUTO"));
                produto.setVlrProduto(rs.getDouble("VLR_PRODUTO"));
                listaProdutos.add(produto);
            }

            rs.close();
            stmt.close();

        } catch (SQLException ex) {
            Logger.getLogger(ProdutoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }

        return listaProdutos;

    }
    
    public void excluir(String codProduto) {
        try {
            String sql = "DELETE FROM PRODUTOS WHERE COD_PRODUTO='" + codProduto + "'";
            PreparedStatement stmt = conn.prepareStatement(sql);
            stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ProdutoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void inserir(ProdutoBean produto){
        try {
            
            StringBuilder sb = new StringBuilder();
            sb.append("INSERT INTO `produtos` ")
            .append("(`cod_supermercado`, ")
            .append("`dsc_produto`, ")
            .append("`vlr_produto`) ")
            .append("VALUES ")
            .append("('"+produto.getCodSupermercado()+"', ")
            .append("'"+produto.getDscProduto()+"', ")
            .append("'"+produto.getVlrProduto()+"'); ");
            
            String sql = sb.toString();
            PreparedStatement stmt = conn.prepareStatement(sql);
            stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ProdutoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void editar(ProdutoBean produto){
        try {
            
            StringBuilder sb = new StringBuilder();
            sb.append("UPDATE `produtos` ");
            sb.append("SET ");
            //sb.append("`cod_supermercado` = <{cod_supermercado: }>, ");
            sb.append("`dsc_produto` = '"+produto.getDscProduto()+"', ");
            sb.append("`vlr_produto` = '"+produto.getVlrProduto()+"' ");
            sb.append("WHERE `cod_produto` = '"+produto.getCodProduto()+"'; ");
            
            String sql = sb.toString();
            PreparedStatement stmt = conn.prepareStatement(sql);
            stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ProdutoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
}
